package pro.cherish.knowledgeutil.collection;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 创建人：cherish
 * @version 版本号：V1.0
 * <p>
 * ***************************修订记录************************************
 * 2019-11-02 cherish 创建该类功能。
 * **********************************************************************
 * </p>
 * @ClassName 类名：CommonConverter
 * @Description 功能说明：
 * <p>
 * TODO
 * </p>
 * **********************************************************************
 * @date 创建日期： 2019-11-02 cherish
 */
@Slf4j
public class CommonConverter<S,T> {


    /**
     * 对象拷贝
     * @param srcObj 原对象
     * @param targetClazz  目标类字节码对象
     * @return
     */
    public T copyObject(Object srcObj,Class<T> targetClazz){
        T target = null;
        try {
            target = targetClazz.newInstance();
        } catch (Exception e) {
            e.printStackTrace();
            log.info(e.getMessage());
        }
        if (srcObj==null){
            return target;
        }
        BeanUtils.copyProperties(srcObj,target);
        return target;
    }

    /**
     * 列表拷贝
     * @param sList 原列表
     * @param t 目标类字节码对象
     * @return
     */
    public List<T> copyList(List<S> sList, Class<T> t){
        List<T> tList = new ArrayList<>();
        if (sList==null||sList.size()==0){
            return tList;
        }
        for (S s : sList){
            tList.add(copyObject(s,t));
        }
        return tList;
    }




}

